/* inline内联函数和普通函数的区别？
 * inline内联函数：在编译过程中，就没有函数的调用开销了，在函数的调用点直接把函数的代码进行展开处理了
 *
 * inline函数不再生成相应的函数符号   *.o .text
 *
 * inline只是建议编译器把这个函数处理成内联函数
 * 但是不是所有的inline都会被编译器处理成内联函数 --- 递归
 *
 * debug版本上，inline是不起作用的；
 * inline只有在release版本下才能出现
 * */
#include<iostream>
using namespace std;

int sum1(int a,int b){
    return a+b;
}

inline int sum2(int a,int b){
    return a+b;
}
int main(){
    int a=1;
    int b=2;

    //此处有标准的函数调用过程  参数压栈，函数栈的开辟和回退过程
    //有函数调用的开销
    int res1= sum1(a,b);
    cout<<res1<<endl;

    int res2= sum2(a,b);        //相当于 int res2=a+b; 直接展开
    cout<<res2<<endl;
    return 0;
}